package com.ruoyi.background.service;

import com.ruoyi.background.domain.AppSiteTopic;
import com.ruoyi.background.domain.AppSiteTopicUser;
import org.springframework.scheduling.annotation.Async;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 用户站点答题主记录Service接口
 *
 * @author susu
 * @date 2024-08-27
 */
public interface IAppSiteTopicUserService {
    /**
     * 查询用户站点答题主记录
     *
     * @param id 用户站点答题主记录主键
     * @return 用户站点答题主记录
     */
    public AppSiteTopicUser selectAppSiteTopicUserById(Long id);

    /**
     * 查询用户站点答题主记录列表
     *
     * @param appSiteTopicUser 用户站点答题主记录
     * @return 用户站点答题主记录集合
     */
    public List<AppSiteTopicUser> selectAppSiteTopicUserList(AppSiteTopicUser appSiteTopicUser);

    /**
     * 新增用户站点答题主记录
     *
     * @param appSiteTopicUser 用户站点答题主记录
     * @return 结果
     */
    public int insertAppSiteTopicUser(AppSiteTopicUser appSiteTopicUser);

    /**
     * 修改用户站点答题主记录
     *
     * @param appSiteTopicUser 用户站点答题主记录
     * @return 结果
     */
    public int updateAppSiteTopicUser(AppSiteTopicUser appSiteTopicUser);

    /**
     * 批量删除用户站点答题主记录
     *
     * @param ids 需要删除的用户站点答题主记录主键集合
     * @return 结果
     */
    public int deleteAppSiteTopicUserByIds(Long[] ids);

    /**
     * 删除用户站点答题主记录信息
     *
     * @param id 用户站点答题主记录主键
     * @return 结果
     */
    public int deleteAppSiteTopicUserById(Long id);

    /**
     * 插入用户一次答题的数据
     *
     * @param topicList 题目
     * @param topicUser 用户
     */
    @Async
    @Transactional
    public void setUserTopicData(List<AppSiteTopic> topicList, AppSiteTopicUser topicUser);
}
